# Python内置的os模块也可以直接调用操作系统提供的接口函数。
import os, logging, io

print(os.name)
# 要获取详细的系统信息，可以调用uname()函数：
# print(os.uname()) 注意uname()函数在Windows上不提供

# 环境变量
# 在操作系统中定义的环境变量，全部保存在os.environ这个变量中，可以直接查看：
print(os.environ)
# 要获取某个环境变量的值，可以调用os.environ.get('key')：
print(os.environ.get('path'))
print('****************************操作文件和目录****************************************')
# 操作文件和目录
# 操作文件和目录的函数一部分放在os模块中，一部分放在os.path模块中，这一点要注意一下。查看、创建和删除目录可以这么调用：

# 查看当前目录的绝对路径:
print(os.path.abspath('.'))

# 在某个目录下创建一个新目录，首先把新目录的完整路径表示出来:
os.path.join('F:/pycharm_demo/pycharm_one/leanr_base/IO编程_08', 'testDir')


def isDir():
    if os.path.exists('F:/pycharm_demo/pycharm_one/leanr_base/IO编程_08/testDir'):
        logging.warning('文件夹已存在')
    else:
        logging.warning('创建文件夹')
        os.mkdir('F:/pycharm_demo/pycharm_one/leanr_base/IO编程_08/testDir')


isDir()


# 删掉一个目录:
def deleteDir(str):
    if os.path.exists(str):
        logging.warning('删除成功')
        os.rmdir(str)
    else:
        logging.warning('没有该文件夹')


deleteDir('F:/pycharm_demo/pycharm_one/leanr_base/IO编程_08/testDir')
# 要拆分路径时，也不要直接去拆字符串，而要通过os.path.split()函数，这样可以把一个路径拆分为两部分，后一部分总是最后级别的目录或文件名：
# 这些合并、拆分路径的函数并不要求目录和文件要真实存在，它们只对字符串进行操作。
print(os.path.split('F:/pycharm_demo/pycharm_one/leanr_base/IO编程_08/test1.txt'))
# os.path.splitext()可以直接让你得到文件扩展名，很多时候非常方便：
print(os.path.splitext('F:/pycharm_demo/pycharm_one/leanr_base/IO编程_08/test1.txt'))

# 文件操作使用下面的函数。假定当前目录下有一个test.txt文件：
# 创建一个文件
path = os.path.abspath('.')


def creatFile(path, file):
    fileOne = os.path.join(path, file)
    if os.path.exists(fileOne):
        logging.warning('文件...已存在')
    else:
        logging.warning('创建文件....')
        with open(fileOne, 'w') as w:
            w.write('dewfewfwfwfw')
    return fileOne


# 判断文件是否存在
def renameFile(file, str):
    if os.path.exists(str):
        logging.warning('文件.已存在,不能改名')
    else:
        os.rename(file, str)


# 删除文件
def renameFile(str):
    if os.path.exists(str):
        logging.warning('文件删除')
        os.remove(strpath)
    else:
        logging.warning('文件没有不删除')


# 新文件名
newFile = creatFile(path, 'newFile.txt')
# 改名的文件
strpath = path + '/newFile.py'
renameFile(strpath)
print('****************************列出所有目录****************************************')

# 列出当前目录下的所有目录或者文件，
listDir = [x for x in os.listdir('.') if os.path.isfile(x)]
print(listDir)
# 要列出所有的.py文件，也只需一行代码：
# listPy = [x for x in os.listdir('.') if os.path.splitext(x)[1] == '.py']
listPy = [x for x in os.listdir('.') if x.endswith('.py')]
print(listPy)
